package cn.doitedu;

import org.roaringbitmap.longlong.Roaring64Bitmap;

import java.io.IOException;
import java.io.Serializable;

public class Acc implements Serializable {

    private byte[] bitmapBytes;


    // 累加器构造
    public Acc() throws IOException {

        // 对累加器的bitmapBytes初始复制
        Roaring64Bitmap bitmap = Roaring64Bitmap.bitmapOf();

        byte[] bytes = BitmapUtils.ser(bitmap);

        // 对bitmapBytes赋初始值
        this.bitmapBytes = bytes;

    }



    public Roaring64Bitmap getBitmap() throws IOException {

        // 反序列化
        Roaring64Bitmap bitmap = BitmapUtils.de(this.bitmapBytes);

        return bitmap;
    }

    public void setBitmap(Roaring64Bitmap bitmap) throws IOException {

        // 序列化
        // bitmap.serialize(ByteBuffer.((int) bitallocatemap.serializedSizeInBytes()));
        byte[] bytes = BitmapUtils.ser(bitmap);

        this.bitmapBytes = bytes;
    }


    public byte[] getBitmapBytes() {
        return bitmapBytes;
    }


}
